capture log close
log using suic-econ-a2-demog.txt, replace text

//  program: suic-econ-a2-demog.do
//  task:	 poisson models by demographic group
// 	input:	 suic-econ-data1-census.dta
//	output:	 suic-econ-atable-`category'_`level'.txt 
//  project: economic conditions and suicide
//  author:  sam harper \ 17dec2014

//  #0
//  program setup

version 12
set linesize 80
clear all
macro drop _all
set matsize 11000


// #1 	
// Bring in dataset

* Census dataset
use suic-econ-data1-census, clear

* re-scale icei for a 10-unit change
replace icei= -1*icei/10

* run across each demographic group
foreach var of varlist sex race2 agecat {
	quietly levelsof `var', local(levels`var')
	foreach g of local levels`var' {
	
	di "-> Group = `: label (`var') `g''"


// #2
// crude poisson model without adjustments: Model 0

poisson suic icei if `var'==`g', offset(logpop100y) vce(cluster state) ///
	nolog irr cformat(%4.3f)

* predicted marginal effects
eststo `var'_`g'_m_0: estpost margins, dydx(icei) predict(ir) ///
	vce(unconditional) cformat(%4.2f)

* save estimates for plot
qui parmest, saving(`var'_`g'_m_0, replace) 


	
// #3
// now add individual covariates: Model 1

poisson suic icei i.sex i.race2 i.agecat if `var'==`g', offset(logpop100y) ///
	vce(cluster state) nolog irr cformat(%4.3f)

* predicted margins
eststo `var'_`g'_m_1: estpost margins, dydx(icei sex race2 agecat) predict(ir) ///
	vce(unconditional) cformat(%4.2f)

* save estimates for plot
qui parmest, saving(`var'_`g'_m_1, replace) 
	


// #4
// now add state, season, and year fixed effects: Model 2

poisson suic icei i.sex i.race2 i.agecat i.stabb i.season##i.year ///
	if `var'==`g', offset(logpop100y) vce(cluster state) nolog ///
	irr cformat(%4.3f)

* predicted marginal effects
eststo `var'_`g'_m_2: estpost margins, dydx(icei sex race2 agecat season) ///
	predict(ir) vce(unconditional) cformat(%4.2f) 
	
* save estimates for plot
qui parmest, saving(`var'_`g'_m_2, replace) 


// #5
// now add state-specific linear trends to FE model: Model 3

poisson suic icei i.sex i.race2 i.agecat i.stabb##c.quarter i.season##i.year ///
	if `var'==`g', offset(logpop100y) vce(cluster state) nolog ///
	irr cformat(%4.3f)

* predicted marginal effects
eststo `var'_`g'_m_3: estpost margins, dydx(icei sex race2 agecat season) ///
	predict(ir) vce(unconditional) cformat(%4.2f)

* save estimates for plot
qui parmest, saving(`var'_`g'_m_3, replace) 	
	

// #6
// now add state-specific quadratic time trends to basic FE model: Model 4

poisson suic icei i.sex i.race2 i.agecat i.season##i.year ///
	i.stabb##(c.quarter##c.quarter) if `var'==`g', offset(logpop100y) ///
	vce(cluster state) nolog irr cformat(%4.3f)

* predicted margins
eststo `var'_`g'_m_4: estpost margins, dydx(icei sex race2 agecat season) ///
	predict(ir) vce(unconditional) cformat(%4.2f) 

* save estimates for plot
qui parmest, saving(`var'_`g'_m_4, replace) 	


// #7 	
// include state-specific cubic trends: Model 5

poisson suic icei i.sex i.race2 i.agecat i.season##i.year ///
	i.stabb##(c.quarter##c.quarter##c.quarter) if `var'==`g', ///
	offset(logpop100y) vce(cluster state) nolog irr cformat(%4.3f) 

* predicted margins
eststo `var'_`g'_m_5: estpost margins, dydx(icei sex race2 agecat season) ///
	predict(ir) vce(unconditional) cformat(%4.2f) 

* save estimates for plot
qui parmest, saving(`var'_`g'_m_5, replace) 	


// #8
// write results to file

esttab `var'_`g'_m_* using suic-econ-atable-`var'_`g'.txt,  ///
	cells("b(fmt(%4.2f)) ci(par( ( , ) ))") collabels(Est. 95%CI) nostar not ///
	nolines nonum mtitle((0) (1) (2) (3) (4) (5)) delimiter(";") replace ///
	
	}
}

	
log close
exit
